﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace Less2DB.Interfaces
{
    public interface IEntity
    {
        /// <summary>
        /// 返回实体所表示的数据库表名。
        /// </summary>
        string TableName { get; }

        /// <summary>
        /// 返回主键所对应的数据库字段的名称。
        /// </summary>
        string PrimaryKey { get; }

        /// <summary>
        /// 获取实体所使用的数据库引擎。
        /// </summary>
        Less2DB.Interfaces.IDAL DAL { get; }

        /// <summary>
        /// 获取实体所对应的数据库的连接字符串。
        /// </summary>
        string ConnectionString { get; }

        /// <summary>
        /// 返回全部的字段列表。
        /// </summary>
        string[] FieldNames { get; }

        /// <summary>
        /// 返回用于 Insert 和 Update 的字段列表。
        /// </summary>
        string[] FieldNamesForCU { get; }

        IDbDataParameter[] GetParameters(string[] fieldNames);
    }
}
